simple way to add more logs related to upload progress
authorMatthieu Gallien <matthieu.gallien@nextcloud.com>
Fri, 4 Apr 2025 15:53:45 +0000 (17:53 +0200)
committerMatthieu Gallien <matthieu.gallien@nextcloud.com>
Thu, 10 Apr 2025 12:55:41 +0000 (14:55 +0200)
will be important to try to see upload performance bottlenecks

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
src/libsync/propagateupload.cpp
src/libsync/putmultifilejob.cpp

index 2bac80f172b893818fb56f269914f1217f9dd3e9..ab7899c525c7d4173374643565671d97f0516425 100644 (file)
@@ -64,18 +64,27 @@ void PUTFileJob::start()
 
     req.setPriority(QNetworkRequest::LowPriority); // Long uploads must not block non-propagation jobs.
 
+    auto requestID = QByteArray{};
+
     if (_url.isValid()) {
-        sendRequest("PUT", _url, req, _device);
+        const auto reply = sendRequest("PUT", _url, req, _device);
+        requestID = reply->request().rawHeader("X-Request-ID");
     } else {
-        sendRequest("PUT", makeDavUrl(path()), req, _device);
+        const auto reply = sendRequest("PUT", makeDavUrl(path()), req, _device);
+        requestID = reply->request().rawHeader("X-Request-ID");
     }
 
     if (reply()->error() != QNetworkReply::NoError) {
         qCWarning(lcPutJob) << " Network error: " << reply()->errorString();
     }
 
+    connect(reply(), &QNetworkReply::uploadProgress, this, [requestID] (qint64 bytesSent, qint64 bytesTotal) {
+        qCDebug(lcPutJob()) << requestID << "upload progress" << bytesSent << bytesTotal;
+    });
+
     connect(reply(), &QNetworkReply::uploadProgress, this, &PUTFileJob::uploadProgress);
     connect(this, &AbstractNetworkJob::networkActivity, account().data(), &Account::propagatorNetworkActivity);
+
     _requestTimer.start();
     AbstractNetworkJob::start();
 }
index 10e202e46f9f97d2b5c91ae797230f2467f96e20..aa23e9b5ca316b28544907052b6b7891661f48b5 100644 (file)
@@ -71,21 +71,16 @@ void PutMultiFileJob::start()
         _body.append(onePart);
     }
 
-    sendRequest("POST", _url, req, &_body);
+    const auto newReply = sendRequest("POST", _url, req, &_body);
+    const auto &requestID = newReply->request().rawHeader("X-Request-ID");
 
     if (reply()->error() != QNetworkReply::NoError) {
         qCWarning(lcPutMultiFileJob) << " Network error: " << reply()->errorString();
     }
 
     connect(reply(), &QNetworkReply::uploadProgress, this, &PutMultiFileJob::uploadProgress);
-    connect(reply(), &QNetworkReply::uploadProgress, this, [] (qint64 bytesSent, qint64 bytesTotal) {
-        qCDebug(lcPutMultiFileJob()) << "upload progress" << bytesSent << bytesTotal;
-    });
-    connect(reply(), &QNetworkReply::bytesWritten, this, [] (qint64 bytesSent) {
-        qCDebug(lcPutMultiFileJob()) << "upload progress" << bytesSent;
-    });
-    connect(reply(), &QNetworkReply::requestSent, this, [] () {
-        qCDebug(lcPutMultiFileJob()) << "request sent";
+    connect(reply(), &QNetworkReply::uploadProgress, this, [requestID] (qint64 bytesSent, qint64 bytesTotal) {
+        qCDebug(lcPutMultiFileJob()) << requestID << "upload progress" << bytesSent << bytesTotal;
     });
     connect(this, &AbstractNetworkJob::networkActivity, account().data(), &Account::propagatorNetworkActivity);
     _requestTimer.start();